package com.ccn.kotlin_mvvm.app.base

import android.content.res.Resources
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.databinding.ViewDataBinding
import com.ccn.jetpack_mvvm.base.activity.BaseVmDbActivity
import com.ccn.jetpack_mvvm.base.viewmodel.BaseViewModel
import com.ccn.kotlin_mvvm.app.ext.dismissLoadingExt
import com.ccn.kotlin_mvvm.app.ext.showLoadingExt
import me.jessyan.autosize.AutoSizeCompat

/**
 * 项目中的Activity基类
 * 在这里实现弹窗，吐司，加入自己的需求操作，
 * 如果不想用Databind，集成BaseVmActivity，例如
 * abstract class BaseActivity<VM : BaseViewModel> : BaseVmActivity<VM>()
 */
abstract class BaseActivity<VM:BaseViewModel,DB:ViewDataBinding> :
    BaseVmDbActivity<VM,DB>() {
    abstract override fun layoutId(): Int

    abstract override fun initView(savedInstanceState: Bundle?)

    /**
     * 打开等待框
     */
    override fun showLoading(message: String) {
        showLoadingExt(message)
    }

    /**
     * 关闭等待框
     */
    override fun dismissLoading() {
        dismissLoadingExt()
    }

    /**
     * 创建LiveData观察者
     */
    override fun createObserver() {}

    /**
     * 在任何情况下本来适配正常的布局突然出现适配失效，
     * 适配异常等问题，
     * 只要重写Activity的getResources()方法
     *//*
    override fun getResources(): Resources {
        AutoSizeCompat.autoConvertDensityOfGlobal(super.getResources())
        return super.getResources()
    }*/

}